home *** CD-ROM | disk | FTP | other *** search
- Linux Netatalk-HOWTO
-
- Last updated: December 22, 1997
- by Anders Brownworth
-
- _________________________________________________________________
-
- Netatalk is a program which lets your Unix box look like an
- Appletalk fileserver on a LAN. This document is intended as a guide
- to help the Linux system administrator set up netatalk Appletalk
- services on a Linux box. Linux is a freely distributable POSIX
- compliant U*ix for 386, 486, Pentium, PowerMacintosh, Sun and DEC
- Alpha hardware as well as several other experimental platforms.
- (SGI, etc...) Netatalk is a program which exports a piece of the
- Unix filesystem via the appletalk protocol. Using Netatalk,
- Macintosh computers can mount Unix volumes as if they were standard
- Appletalk network drives.
-
- Netatalk is brought to you by our friends at The Research Systems
- Unix Group, The University of Michigan. netatalk@umich.edu
-
- Hugh Dixon is running the UK mirror of the Netatalk-HOWTO and Horie
- Seiichi is mantaining a Japanese version of this document.
-
- I have started a Netatalk Counter which you should fill out after
- your setup is completed. With your help, we can get an idea of how
- Netatalk is being used. Note: this is for non-linux installs also!
-
- Comments and corrections are very welcome. Someone had sent me a
- diff of my pages correcting my horrible spelling, and I proceeded
- to blow away my mailbox by mistake, so if you're out there, please
- resend that! I If you have problems, usually a good place to post
- them is to the appropriate Netatalk list.
-
- Want to know who's logged on a netatalk server? Try nu.
- ______________________________________________________________
-
- Before you begin:
-
- * You might want to look at some hardware / software suggestions.
- * A section specific to netatalk on SparcLinux is available.
-
- What you need:
-
- * Computer running Linux kernel 1.2.* or later installed with source
- and compilers
- * An ethernet card with a driver capable of multicasting (most
- drivers out there do this but some drivers such as the Intel
- EtherExpress don't)
- * LAN with a Mac (don't really need this but then, what's the
- point?)
- * The Netatalk program.
- + Source code for netatalk-1.3.3
- + If you want to fool with the latest beta, it's
- netatalk-1.4b2.tar.gz (people are seeing twice the speed with
- far less CPU utilization with this beta)
- + If you prefer, you can get the Netatalk binary RPM from
- RedHat and skip most of the setup discussed below.
- + A patch to compile netatalk 1.4b2 under RedHat 5.0 is
- available.
-
- What you will do:
-
- * Get and decompress the netatalk source code.
- * Follow the 1.2.* kernel guide if you are using a 1.2.* kernel.
- (2.* and later kernels need no modification)
- * Follow the Netatalk-1.3.3 patch guide to fix a few bugs
- * Configure netatalk source code.
- * Compile netatalk.
- * Install netatalk.
- * Compile a kernel with appletalk services.
- * Configure netatalk's options.
- * Start up the server.
- * Mount your new volume on the Mac.
- * Look at some other topics of intrest.
-
- (If you were wondering why I have you compile a kernel after you
- install netatalk, it's because kernel 1.2.* users patch that
- kernel's appletalk support during "install netatalk" with the
- kinstall rule which has since been taken out of the netatalk
- package as the kernel 1.3.* and higher appletalk implimentations
- don't need patching.)
- ______________________________________________________________
-
- Get and decompress the netatalk source code
-
- 1. Get a copy of the latest source code.
- 2. Put the source code where you want to unpack it
- 3. Decompress the source code. Type:
- gzip -d netatalk-1.3.3.tar.gz
- 4. Unpack the distribution. Type:
- tar -xvf netatalk-1.3.3.tar
-
- ______________________________________________________________
-
- Netatalk and Kernel Specific Setup
-
- * Follow the 1.2.* kernel guide if you are using a 1.2.* kernel.
- * Follow the Netatalk-1.3.3 patch guide to fix a few bugs.
-
- ______________________________________________________________
-
- Configure the netatalk source code
-
- Note: If you want to build for the Andrew File System, there are
- things you need to do before continuing. Please refer to the
- README.AFS document in the source distribution.
- 1. Set up paths. Edit your Makefile to reflect the install path and
- the man path. In Makefile, edit the line:
- DESTDIR=/usr/local/atalk
- to reflect where you want netatalk to install all it's files. Edit
- the line:
- MANDIR={DESTDIR}/man
- to reflect where you want netatalk to install it's man pages. I
- set my MANDIR like this:
- MANDIR=/usr/local/atalk/man
- (it's really saying the same thing as before)
-
- ______________________________________________________________
-
- Compile the netatalk program
-
- 1. In your netatalk directory, type:
- make
- This will make all netatalk binaries. Make sure you get through
- all of the compilation without a fatal error. Fatal errors mean
- things didn't compile for one reason or another. Don't just
- continue. Go back and try to figure out what went wrong.
-
- ______________________________________________________________
-
- Install the netatalk program
-
- 1. In your netatalk directory, type:
- make install
- This will install netatalk in the DESTDIR which you set in the
- Makefile.
-
- Note: make install does not install the configuration files
- necessary to run netatalk.
-
- ______________________________________________________________
-
- Compile a kernel with appletalk services
-
- Note: Many Linux distributions with a 2.0 kernel (such as Debian
- Linux) contain precompiled appletalk support, so you may not need
- to do this. Check your configuration with a make menuconfig from
- the /usr/src/linux/ directory. Note: You need to have TCP/IP up and
- running also on the network card you plan to use for Appletalk
- because kernel Appletalk support doesn't contain all the framing
- code necessary to run Appletalk alone. You should really have
- experience compiling a kernel. If you don't, look through your
- Kernel-HOWTO docs. (usually at /usr/doc/faq/howto/Kernel-HOWTO.gz
- in Slackware Linux. Look at it with the command: zless
- /usr/doc/faq/howto/Kernel-HOWTO.gz)
-
-
- 1. Goto your linux source root directory (usually /usr/src/linux)
- 2. Type make config (or make menuconfig, pick your poison..)
- 3. Answer the questions corrosponding to your setup.
- + Be sure to answer yes to Configure AppleTalk DDP support? [n]
- + With older kernels (pre 1.3.*), you need IEEE802.2 support.
- Answer yes to Configure IPX support [n] as the IPX package
- includes IEEE802.2 interface support. (later 1.3.* kernel
- distributions do not require this as later 1.3.* kernel
- sources include IEEE802.2 support in their appletalk)
- 4. Do a make dep; make clean to set up your source code for compile.
- 5. Make a new kernel. If you haven't done this before, consult your
- Kernel-HOWTO docs. Kernels are made with differient commands
- depending on what result you want. (When I compile, I use the
- command make zImage.)
-
- Note:You can build appletalk support as a module if you like.
- 6. Copy your old kernel somewhere just incase the new kernel you just
- compiled decides to hate you and grind to a screaching halt!
- 7. Install your new kernel and reboot your system on it. WARNING!! If
- you messed something up, your system will not come up! Consult
- your HOWTO docs for kernel installation.
-
- ______________________________________________________________
-
- Configure the options
-
- Note: This document concerns itself with Appletalk file services. I
- do not go into the various print options. You will notice the print
- options commented out in the examples. Mike Pearson and Bill
- McGonigle have prepared a page on printing.
-
- 1. Make yourself an atalkd.conf file. In the netatalk source
- directory under etc/atalkd you will find a file called
- etc.atalkd.conf. Usually this file gets edited and copied to your
- netatalk DESTDIR/etc (/usr/local/atalk/etc) directory and renamed
- atalkd.conf. Instructions and examples on how to edit the
- atalkd.conf file are available.
- 2. Make yourself an AppleVolumes.default and an AppleVolumes.system
- file. These files tell the system which directories to offer as
- Appleshare volumes. In the netatalk source directory under
- etc/afpd you will find two a files called etc.AppleVolumes.default
- and etc.AppleVolumes.system. Usually these files get edited and
- copied to your netatalk DESTDIR/etc (/usr/local/atalk/etc)
- directory and renamed AppleVolumes.default and AppleVolumes.system
- respectively. Instructions and examples on how to edit these files
- are available.
- 3. (if you were setting up the printing options, you would do so
- here.)
- 4. Edit your /etc/services file to include the following Appletalk
- services:
- rtmp 1/ddp # Routing Table Maintenance Protocol
- nbp 2/ddp # Name Binding Protocol
- echo 4/ddp # AppleTalk Echo Protocol
- zip 6/ddp # Zone Information Protocol
- The /etc/services file tells your computer what service to use
- when network requests go in or out.
- If you are using NIS (network information system, or YP), don't
- add these lines to the services file. Add them to your NIS master
- machine's maps and push them.
- 5. In your source distribution, edit your rc.atalk script to launch
- your Appletalk services. Here's what I use:
- ATALKDIR="/usr/local/atalk"
- echo 'Starting Appletalk fileserver...'
- ${ATALKDIR}/etc/atalkd
- echo -n 'atalkd'
- ${ATALKDIR}/bin/nbprgstr -p 4 `hostname|sed
- 's/\..*$//'`:Workstation
- ${ATALKDIR}/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:netatalk
- echo -n ' nbprgstr'
- ${ATALKDIR}/etc/afpd
- echo ' afpd.'
- Note: It is important not to launch any of these services in the
- background as their network data structures need time to stablize.
- 6. Set Appletalk services to automagically start when the system is
- rebooted. In the source distribution directory, move the rc.atalk
- file to your /etc/rc.d directory and make it executable. (chmod
- 755 /etc/rc.d/rc.atalk) In your /etc/rc.d directory, edit the file
- rc.local to launch the rc.atalk script. Add the following line to
- your rc.local:
- /etc/rc.d/rc.atalk
- 7. In order for someone to mount the volumes you have created on your
- Linux box, they need to have a valid shell account on the Linux
- system. AppleShare limits passwords to 8 characters, so you want
- to add users to your Linux system with 8 character or less
- passwords. A valid shell account means that somthing like /bin/sh
- or /bin/tcsh is at the end of that user's entry in the /etc/passwd
- file. If you just pipe to /dev/null the user will not be able to
- login. Root logins are prohibited by netatalk, and for good
- reason. Just don't!
-
- ______________________________________________________________
-
- Start up the server
-
- Assuming everything has been installed and configured correctly,
- you should have no problem turning on Appletalk services.
-
- 1. Fire up Appletalk server. In your /etc/rc.d directory, run the
- script rc.atalk. Now sit back and wait a minute or so as the
- system checks out the network and sets itself up. The rc.atalk
- script will normally be run at system boot time.
-
- ______________________________________________________________
-
-
-
- Mount your new volume on the Mac
-
- Now we get to have some fun!
-
- 1. Move over to a Macintosh connected to the ethernet.
- 2. Go to the Chooser from the Apple Menu.
-
- 3. Click on the little hand holding a platter. (Appleshare services)
- Note: Appletalk must be active to do this. If it's not active,
- click the little button Active on Restart and restart the machine.
- If it still doesn't show up, the Mac may be listening to it's
- LocalTalk port rather than the EtherTalk port. To fix this, go to
- the Networks control pannel and click on EthetTalk, then try the
- Chooser again.
- 4. Login to the Appleshare server using a valid username on your Unix
- system. If the Unix user you logged in as doesn't have permission
- to write in the exported directory, the Appleshare volume will
- mount as read-only. (this is granted this user has read
- privilages!) If you change directory permissions after a volume is
- mounted, you will have to throw away the volume and re-mount it
- for afpd to re-read the permissions. (afpd reads directory and
- file permissions every time the volume gets mounted)
- 5. You should see your Unix workstation in the window to the right.
- Double click it and it should give you the volumes you made
- available in your AppleVolumes.system and AppleVolumes.default
- files.
- 6. Click on the volumes you want to mount. (Shift click will give you
- more than one)
-
- 7. Click OK and smile with wide-eyed wonder as your Linux volumes are
- now available on your Macintosh!
- 8. To unmount a mounted server, throw it in the trash. Don't worry,
- this won't delete the volume! (slight metaphoric inaccuracy on
- Apple's part ;)
-
- ______________________________________________________________
-
- Other stuff
-
- * Users of RedHat 5.0 may have difficulty compiling netatalk1.4b2
- without the patched source or patch from Charles Barrasso. For the
- most part, it just adds several #include lines. Because RedHat
- uses shadow passwords, it also defines -DSHADOWPW.
- I wrote a tiny perl script called nu that gives you a list of the
- users that have afpd processes up. To use it, download it from the
- above link, and save it. Do a chmod +x nu to it so you can execute
- it. (requires perl) Let me know if you like it.
- If you are having problems, there is a tips page which I am posting
- for your browsing. These tips are from users like you who have
- overcome various problems the hard way so that you don't have to!
- I may not have had the same problems addressed in this page, so I
- can't vouch for it's integrity.
- Jay Schulist has a page on Localtalk with Linux, covering a driver
- he wrote called "Cops" and applicable hardware for connecting a
- Localtalk network and a Linux machine. There is a patch for 2.0.30
- kernels and the driver is included in the 2.1.44 and greater
- kernels. There are also some notes on IP over Localtalk.
- Bill McGonigle is mantaining a Netatalk page with a great
- troubleshooting guide.
- Rob Newberry's Linux Services for Macintosh and Windows Users
- The Real Netatalk Homepage at the University of Michigan
- Windows print and file services for linux with Samba
- MkLinux: Linux for the PowerMac supporting netatalk 1.3.3
- SparcLinux, Linux on Sun Sparc hardware.
- Linux Ports from Yahoo.
- A listserv has been set up for announcements and general netatalk
- discussion. It's a low volume moderated list. You can subscribe by
- sending mail to netatalk-admins-request@umich.edu. Submissions
- should be sent to netatalk-admins@umich.edu.
- A Linux specific netatalk listserv is also available. Subscribe to
- it by sending mail to listserv@netspace.org with no subject and a
- body which reads SUBSCRIBE LINUX-ATALK (Your Full Name). To
- unsubscribe, send mail to the same place with the message text
- UNSUBSCRIBE LINUX-ATALK. Posts to this listserv should be sent to
- linux-atalk@netspace.org.
- * A significant differience between the netatalk-1.3.3.b2 code and
- the netatalk-1.3.3 code is the 1.3.3 code does not include the
- kinstall option in it's make. Kinstall is used to patch appletalk
- support into the 1.2.* kernel. As of kernel 1.3.*, appletalk
- support is included in the kernel, so you don't need the beta.
- Older 1.3.* kernels have a "broken" implimentation of appletalk,
- so avoid 1.3.* kernels prior to 1.3.9.
- * It has been discussed that there is possibly a multicast reading
- problem with the Intel EtherExpress driver for Linux which will
- make the netatalk server on that box not to show up in the
- chooser. It seems the option is commented out like so in the
- eexpress.c file:
- set_multicast_list(struct device *dev, int num_addrs, void *addrs)
- {
- /* This doesn't work yet */
- #if 0
- short ioaddr = dev->base_addr;
- ....
- There has been quite a bit of words on what "This doesn't work
- yet" is supposed to mean... ;)
- In general I have had awefull luck with my Intel EtherExpress
- cards. Personally I like to stick to a nice 3Com 509 card or
- somthing like that. 3Com's 59x PCI Vortex cards are the best for
- PCI based machines.
- * Some people have expressed the want to use a differient icon for
- the netatalk volume. One way to do this is to do a "Get Info" on
- an icon you want to use. Next, select the icon in the Get Info
- window. (when it's highlighted, you should see a little black box
- around the icon) Do a Copy. Do a "Get Info" with the linux volume
- selected. Click on the "world-on-a-platter" icon, and do a Paste.
- Whalah!
- * Sam Woolf passed allong a tip he found if the above method of
- changing a Netatalk server icon fails. He mentions a utility from
- Aladdin Systems called Rejuvenator that fixes corrupt server and
- folder icons.
- * For Netatalk 1.3.3, support for shadowed passwords can be achieved
- by substituting this auth.c file for the origional one in
- etc/afpd. Re-compile your afpd binary with the -DSHADOW_PASSWORD
- option to build an afpd with shadow password support. To do this,
- edit etc/afpd/Makefile and add -DSHADOW_PASSWORD to the list of
- CFLAGS. The netatalk 1.4b2 package doesn't need the patch. Just
- compile with -DSHADOWPW.
- * An interesting point: Paul Hargrove has written hfs for linux. To
- put it in a nut-shell, he made it so you can mount and have read
- and limited write access to macintosh volumes on your Linux box. I
- am using it to make Macintosh CD-ROMS mounted on my Linux box via
- hfs, available through netatalk to my Macintosh users. Give it a
- try if you are up for it. I've had good luck with it. To use hfs
- with netatalk, you want to mount a disc with the fork=netatalk
- option. (ie: mount -t hfs -o fork=netatalk /dev/your_cd
- /where_you_want_it_mounted)
- * On my linux / netatalk box, I also run a program called samba. If
- you are not familiar with it, samba enables file and print
- services for Windows users from Linux. (or any Unix for that
- matter) I serve CD-ROMS, writeable volumes, and print services to
- Windows and Macintosh users with samba, hfs and netatalk all on
- one Linux system. (not to mention the web servers, proxy server,
- mail and news which are also run from this little Dell 486 DX2/66!
- It's the Library machine for The Stony Brook School)
- * If you want to change the name of a server as it appears in the
- chooser, call afpd with the -n option. I like to have the server
- name capitalized, so I call afpd like this:
-
- afpd -n "Eyore"
- making Eyore show up as the server name instead of the (all
- lowercase) hostname eyore.
- * Werner Eugster has prepared a printing HOWTO and Mike Pearson and
- Bill McGonigle have written a printing page covering the printing
- issues which I have so skillfully avoided in these pages! ;)
- * Linux has been ported to the PowerMac by Apple and OSF-RI. The
- result of their work is called MkLinux. I'm writing this on a
- Radius 81/110 PowerMac colone running MkLinux! However, the most
- interesting thing is that netatalk-1.3.3 has been ported to
- MkLinux by Michel Pollet so your Mac running Linux can still run
- as an AppleShare fileserver!
- MkLinux runs on the Mach 3.0 microkernel, so what I would love to
- see would be a port of the MacOS which would either run as a Linux
- process, or just another OS on the Mach kernel! I have two
- monitors on my PowerMac. MacOS could run on one screen with X on
- the other. Move your mouse from X over to MacOS on the same box.
- The perfect developer's environment!
- * Several people have asked what I did to make my Mac interface look
- "3D" as it does on the top of this page. Well, it's not me, it's
- the fault of Aaron, a cool extension by Greg Landweber. (actually
- now greatly enhanced in Kaleidoscope, Greg's new product) You can
- freely evaluate it by downloading it and dropping it into the
- extensions folder in your system folder and rebooting your Mac.
- * Interested in what this page really looks like in Japanese?
- * Just incase anyone hadn't noticed, I name my computers after
- cartoon characters. (hence the names in the examples above) For
- those of you who have asked for an explanation, other than the
- obvious Calvin from Calvin and Hobbes, Thak is the name of the
- cavemen with the big body and tiny head commonly appearing in Gary
- Larson's The Far Side.
-
- [INLINE] I'm looking for a job, so if you can help, it would be
- greatly appreciated.
-
- If this little guide has been helpfull with your installation,
- please drop me a note stating so. I'd like to find out if all the
- work I've put into this project has helped anyone out. If you wish
- to thank me, you may do so best by asking around to see if there
- are any old Silicon Graphics workstations that are unused. I would
- be very interested in removing them as I'm fostering a collection
- of antiquities. ;) Thanks!
-
- ______________________________________________________________
-
- This page mantained by Anders Brownworth. Copyright ⌐ 1997
-